Memory systems with variable delays for write data signals

ABSTRACT

Systems and methods for generating write data signals having variable delays for use in write operations to memory components are provided. These memory systems and methods include receiving a write data signal and a corresponding data valid or timing signal (also referred to as a write data valid signal or write data timing signal) and in turn generating multiple delayed versions of the write data signals and delayed valid signals. The memory system selects one of these delayed write data signals and delayed data valid signals for use in writing data to the memory components.

TECHNICAL FIELD

The disclosure herein relates generally to memory systems and methods.In particular, this disclosure relates to systems and methods fortransferring information among memory components and a memorycontroller.

BACKGROUND

High-speed processor-based electronic systems have become all-pervasivein computing, communications, and consumer electronic applications toname a few. The pervasiveness of these systems, many of which are basedon multi-gigahertz processors, has led in turn to an increased demandfor high performance memory systems. As one example, FIG. 8 is a blockdiagram of a high performance memory system 800 under the prior art.This memory system 800 includes a memory controller 802 coupled to oneor more memory component(s) 804. The memory controller 802 includesaddress circuitry 812 to drive address/control information outputs andwrite data circuitry 822 to drive write data information outputs to thememory component(s) 804.

Information is carried on signal paths between the memory controller 802and the memory component(s) 804 by a signal, where the signal includes asymbol (such as a bit) that propagates along the signal path. The symbolis present at a particular point on the signal path for a characteristictime, called the symbol interval or symbol time. A signal path istypically composed of a conductive interconnect. A signal path may useone or two (or more) interconnects to encode the signal, along withreturn paths through adjacent power conductors.

The memory system 800 uses a variety of signals to couple the memorycontroller 802 and the memory component(s) 804. One set of signals areaddress/control signals A and the corresponding timing signals TA (alsoreferred to as address/control timing signals TAX). The address/controlsignals A carry address and control information, and are labeled as A0,A1, and A2 to show the address/control signals at different points alongthe signal path between the memory controller 802 and the memorycomponent(s) 804. The timing signals TA carry timing information thatindicates when information is valid on the address/control signals A.The timing signals are labeled as TA0, TA1, and TA2 to show the timingsignals at different points along the signal path between the memorycontroller 802 and the memory component(s) 804.

Another set of signals that couple the memory controller 802 and thememory component(s) 804 are write data signals W and the correspondingdata valid or timing signals TW (also referred to as write data validsignals or write data timing signals TW). The write data signals W carrywrite data information, and are labeled as W0, W1, and W2 to show thewrite data signals at different points along the signal path between thememory controller 802 and the memory component(s) 804. The timingsignals TW carry timing information that indicates when information isvalid on the write data signals W. The timing signals are labeled asTW0, TW1, and TW2 to show the timing signals at different points alongthe signal path between the memory controller 802 and the memorycomponent(s) 804. Note that the label for address/control timing signalTA0 is shortened to T0 in the memory system 800, and likewise, the labelfor write data timing signal TW0 is shortened to T0 because the addresscircuitry 812 and the write data circuitry 822 operate within a commontiming domain in the memory controller 802.

The timing signals TA and TW carry timing information in the form ofevents, such as a transition between two symbol values (such as a risingedge). A timing signal indicates when valid information is present on aset of related signals. Each timing event may be related to one symbolon each signal of the set, or it may be related to more than one symbolon each signal. The timing signal may only have timing events when thereare valid symbols on the associated set of signals, or it may havetiming events when there are no valid symbols. Consequently, each bit onthe address/control signal A is associated with a timing event on thecorresponding address timing signal TA (a rising edge for example).Similarly, each bit on the write data signal W is associated with atiming event on the write data timing signal TW.

The address and control information A2 is received at the memorycomponent(s) 804 with the timing signal TA2, and is coupled to the corecircuitry 814 of the memory component(s) 804. This core circuitry 814operates in the TA2 timing domain. The TA2 timing domain is delayed fromthe T0 timing domain of the memory controller 802 by the propagationdelay time t_(PD-A) (the time required by the signals at A1 and TA1 topropagate to A2 and TA2, respectively).

Further, the write data information W2 is received at the writecircuitry 824 of the memory component(s) 804 with the timing signal TW2.The write circuitry 824 operates in the TW2 timing domain, where the TW2timing domain is delayed from the T0 timing domain of the memorycontroller 802 by the propagation delay time t_(PD-W) (the time requiredby the signals at W1 and TW1 to propagate to W2 and TW2, respectively).

In writing data to the core circuitry 814 of the memory component 804,write data received at the write circuitry 824 (TW2 timing domain) mustbe transferred to the core circuitry 814 (TA2 timing domain). Thistransfer is accomplished by the interface circuitry 834, where theinterface circuitry 834 compensates for timing differences between theTW2 timing domain and the TA2 timing domain (determined by taking thedifference between t_(PD-A) and t_(PD-W) propagation delay times). Theinterface circuitry 834 typically compensates for timing differencesbetween the TW2 timing domain and the TA2 timing domain of approximately+/−t_(DQSS) (data sheet term representing system offsets and pin-to-pinoffsets in a dynamic random access memory (DRAM)). Therefore, if thevalue of t_(DQSS) is made large, it relaxes the signal path matchingconstraints imposed on t_(PD-A) and t_(PD-W), but increases the burdenon the interface circuitry 834 to resolve timing discrepancies betweenthe different timing domains.

If however the value of t_(DQSS) is reduced in order to reduce theburden on the interface circuitry 834, it increases the signal pathmatching constraints imposed on t_(PD-A) and t_(PD-W). Typically, the Aand TA signal paths must be routed together and matched relativelytightly so the timing information on TA can be used to reliably samplethe address and control information on the A signals. Similarly, the Wand TW signal paths must be routed together and matched relativelytightly so the timing information on TW can be used to reliably samplethe address and control information on the W signals. Thus, if thet_(DQSS) value is made small, the t_(PD-A) and t_(PD-W) values of allthe A/TA and W/TW signals must be simultaneously matched.

FIG. 9 is a timing diagram 900 showing signals for a write operation inthe memory system 800 under the prior art. Address/control informationaddr is placed on the address/control signal A0 by the memory controllerin response to the first rising edge of the T0 timing signal. Theaddress/control signal A0 is then driven onto the signal path as the A1signal along with a rising edge of the corresponding TA1 signal. The A1and TA1 signals propagate to the core circuitry of the memory componentand become the A2 and TA2 signals at time t_(PD-A) later.

Additionally, write data is placed on the write data signal W0 by thememory controller in response to the first rising edge of the T0 timingsignal. The write data signal W0 is held in the memory controller for atime t_(WL) (where t_(WL) is a fixed delay of two (2) cycles or periodsfor example) before being driven onto the W1 signal (along with a risingedge of the corresponding TW1 signal). The W1 and TW1 signals propagateto the write circuitry of the memory component and become the W2 and TW2signals at time t_(PD-W) later.

The write operation in the memory system 800 results in a mismatchbetween the timing of the TA2 and TW2 timing signals at the memorycomponent(s). In order for the interface circuitry to compensate forthis timing mismatch, the magnitude of the mismatch must not exceed thedifference between the value t_(DQSS) and the value t_(WL) (the quantity(t_(DQSS)−t_(WL))); when the mismatch exceeds the difference between thevalue t_(DQSS) and the value t_(WL) the write data cannot be reliablytransferred from the write circuitry to the core circuitry within thememory component. Consequently, there is a need in high performancememory systems to increase the reliability and accuracy of data writesto memory components while relaxing the signal path matching constraints(relating to the t_(PD-A) and t_(PD-W) values) and reducing the burdenon the interface circuitry.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, the same reference numbers identify identical orsubstantially similar elements or acts. To easily identify thediscussion of any particular element or act, the most significant digitor digits in a reference number refer to the Figure number in which thatelement is first introduced (e.g., element 150 is first introduced anddiscussed with respect to FIG. 1).

FIG. 1 is a block diagram of a memory system that includes variabledelay write circuitry for generating write data signals and data validsignals with variable delays, under an embodiment.

FIG. 2 is another block diagram of the memory system that includesvariable delay write circuitry for generating variably delayed writedata signals and variably delayed data valid signals, under anembodiment.

FIG. 3 is a timing diagram showing the delayed data valid along with thecorresponding write data valid signals selected for output by thevariable delay write circuitry, under an embodiment.

FIG. 4 is a block diagram for generating write data signals and writedata valid signals with selectable delays for use in memory writeoperations, under an embodiment.

FIG. 5 is a timing diagram for signals of an example write operation ina memory system that generates write data signals with variable delays,under an embodiment.

FIG. 6 is a block diagram of a multiple-slice memory system thatincludes the variable delay write circuitry for generating write datasignals and data valid signals with variable delays, under anembodiment.

FIG. 7 is a block diagram of a multiple-rank memory system that includesthe variable delay write circuitry for generating write data signals anddata valid signals with variable delays, under an embodiment.

FIG. 8 is a block diagram of a high performance memory system under theprior art.

FIG. 9 is a timing diagram showing signals for a write operation in thememory system under the prior art.

DETAILED DESCRIPTION

Systems and methods for generating write data signals having variabledelays for use in writing data to memory components are provided below.These systems and methods, also referred to herein as variable delaywrite circuitry, receive a write data signal and a corresponding datavalid or timing signal (also referred to as a write data valid signal orwrite data timing signal) and in turn generate multiple delayed versionsof the write data signals and delayed valid signals. The memory systemselects one of these delayed write data signals and delayed data validsignals for use in writing data to memory components.

In operation the variable delay write circuitry receives a write datasignal and a corresponding data valid signal, and uses circuitryincluding register storage elements and calibrated delay elements togenerate delayed write data signals and delayed valid signals withvariable delays. The write data signal and the corresponding multipledelayed write data signals include data to be transferred to the memorycomponents during a write operation. The data valid signal andcorresponding delayed valid signals indicate when data of the write datasignal is valid. The variable delays of the delayed write data signalsand delayed valid signals of an embodiment are in a range ofapproximately 1.00 to 2.75 clock periods or cycles, but are not solimited.

The variable delay write circuitry selects one of the delayed write datasignals and one of the delayed valid signals for output. Each of theselected output signals has a delay that best compensates for themismatch of the propagation delay values resulting from differences inthe signal paths used to couple signals between the variable delay writecircuitry and the memory component. In this manner the variable delaywrite circuitry allows for relaxed signal path matching constraints(propagation delay values) and also reduces the burden on circuitry ofthe memory component to compensate for misalignment between the timingevents of the various received signals. The variable delay writecircuitry is for use in memory systems which include, for example,double data rate (DDR) systems like DDR SDRAM as well as DDR2 SDRAM andother DDR SDRAM variants, such as reduced latency DRAM (RLDRAM),RLDRAM2, Graphics DDR (GDDR) and GDDR2, GDDR3, but is not limited tothese memory systems.

In the following description, numerous specific details are introducedto provide a thorough understanding of, and enabling description for,embodiments of the variable delay write circuitry. One skilled in therelevant art, however, will recognize that these embodiments can bepracticed without one or more of the specific details, or with othercomponents, systems, etc. In other instances, well-known structures oroperations are not shown, or are not described in detail, to avoidobscuring aspects of the disclosed embodiments.

FIG. 1 is a block diagram of a memory system 100 that includes variabledelay write circuitry 150 for generating write data signals and datavalid signals with variable delays, under an embodiment. This memorysystem 100 includes a memory controller 102 coupled to one or morememory components 104-2 and 104-3; while two memory components104-2/104-3 are shown the embodiment is not limited to any number ofmemory components. The memory system 100 operates in a number of modesincluding calibration, transmitter, and receiver modes. The memorycontroller 102 includes address circuitry 112 to drive address/controlinformation to circuits or components that include the memory components104-2/104-3. The address/control information includes but is not limitedto address/control signals A0 and address/control valid signals T0.

The memory controller 102 of an embodiment includes the variable delaywrite circuitry 150 to drive write data information signals W0 and T0 tothe memory components 104-2/104-3. The variable delay write circuitry150 of an embodiment includes delay circuits 152, storage circuits 154,and output circuits 156, but is not limited to these circuits. The delaycircuits 152 receive write data valid signals T0 and in responsegenerate a number of delayed data valid signals T0+Y. The multipledelayed data valid signals T0+Y include delayed versions of the writedata valid signals T0, as described below. The delayed data validsignals T0+Y couple to the storage circuits 154 and the output circuits156, as described below.

The storage circuits 154 of an embodiment couple to receive the delayeddata valid signals T0+Y from the delay circuits 152 as well as writedata signal W0, data valid signal T0, and control signal Sel[2, 1, 0].The storage circuits in turn generate a number of delayed write datasignals WD. Each delayed write data signal WD is delayed a period oftime in a range of approximately 1.00 to 2.75 clock periods or cycles,as described below, but is not so limited. The delayed write datasignals WD couple to the output circuits 156.

The output circuits 156 couple to receive the delayed write data signalsWD from the storage circuits 154 and the delayed data valid signals T0+Yfrom the delay circuits 152. Additionally the output circuits 156 coupleto receive the control signal Sel[2, 1, 0]. The output circuits 156 inresponse to information of the control signal Sel[2, 1, 0] select one ofthe delayed write data signals WD for the transfer of write datainformation as write data signal W1 to the memory components104-2/104-3, as described below. Further, the output circuits 156 selectone of the delayed data valid signals T0+Y for output to the memorycomponents 104-2/104-3 as write data valid signal TW1 (also referred toas delayed write data valid signal TW1).

Information is carried on signal paths between the memory controller 102and the memory components 104-2/104-3 by a signal, where the signalincludes a symbol that propagates along the signal path. The memorysystem 100 uses a variety of signals to couple the memory controller 102and the memory components 104-2/104-3, as described above. One set ofsignals include address/control signals A and the corresponding validsignals TA (also referred to as address/control valid signals TA). Theaddress/control signals A carry address and control information, and arelabeled as A0, A1, and A2 to show the address/control signals atdifferent points along the signal path between the memory controller 102and the memory components 104-2/104-3. The valid signals TA carry timinginformation that indicates when information is valid on theaddress/control signals A. The valid signals are labeled as TA0, TA1,and TA2 to show the valid signals at different points along the signalpath between the memory controller 102 and the memory components104-2/104-3.

Another set of signals that couple the memory controller 102 and thememory components 104-2/104-3 include write data signals W and thecorresponding data valid signals TW (also referred to as write datavalid signals TW). The write data signals W carry write datainformation, and are labeled as W0, W1, and W2 to show the write datasignals at different points along the signal path between the memorycontroller 102 and the memory components 104-2/104-3. The data validsignals TW carry timing information that indicates when information isvalid on the write data signals W. The valid signals are labeled as TW0,TW1, and TW2 to show the valid signals at different points along thesignal path between the memory controller 102 and the memory components104-2/104-3. Note that the label for address/control timing signal TA0is shortened to T0 in the memory system 100, and likewise, the label fordata valid signal TW0 is shortened to T0 because the address circuitry112 and the write data circuitry 150 operate within a common timingdomain in the memory controller 102.

The valid signals TA and TW carry timing information in the form ofevents, such as a transition between two symbol values. The transitionbetween two symbol values can include, for example, a falling edge or arising edge of the signal. A valid signal indicates when validinformation is present on a set of related signals. Each timing eventmay be related to one symbol on each signal of the set, or it may berelated to more than one symbol on each signal. The valid signal mayonly have timing events when there are valid symbols on the associatedset of signals, or it may have timing events when there are no validsymbols. Consequently, each bit on the address/control signal A isassociated with a timing event on the corresponding address valid signalTA (a rising edge for example). Similarly, each bit on the write datasignal W is associated with a timing event on the data valid signal TW.

Alternative embodiments of the memory system described herein associateeach rising edge on an address valid signal TA and/or data valid signalTW with two successive bits on each address and control signal A and/orwrite data signal W signal. Other alternative embodiments of the memorysystem described herein associate each rising edge and each falling edgeon an address valid signal TA and/or data valid signal TW with eachsuccessive bit on each address and control signal A and/or write datasignal W signal.

Taking one memory component as an example, the address and controlsignal A2 is received at the memory component 104-2 along with theaddress valid signal TA2, and is coupled to the core circuitry 114-2 ofthe memory component 104-2. This core circuitry 114-2 operates in theTA2 timing domain. The TA2 timing domain is delayed from the T0 timingdomain of the memory controller 102 by the propagation delay timet_(PD-A) (the time required by the signals at A1 and TA1 to propagate toA2 and TA2, respectively).

Additionally the write data signal W2 is received at the write circuitry124-2 of the memory component 104-2 with the data valid signal TW2. Thewrite circuitry 124-2 operates in the TW2 timing domain, where the TW2timing domain is delayed from the T0 timing domain of the memorycontroller 102 by the propagation delay time t_(PD-W) (the time requiredby the signals at W1 and TW1 to propagate to W2 and TW2, respectively).

In writing data to the core circuitry 114-2 of the memory component104-2 during a write operation, write data W2 received at the writecircuitry 124-2 (TW2 timing domain) must be transferred to the corecircuitry 114-2 (TA2 timing domain). This transfer is accomplished bythe interface circuitry 134-2, where the interface circuitry 134-2compensates for timing differences between the TW2 timing domain and theTA2 timing domain. The timing difference between the timing domains TW2and TA2 is determined by taking the difference between t_(PD-A) andt_(PD-W) propagation delay times.

The interface circuitry 134-2 typically compensates for timingdifferences between the TW2 timing domain and the TA2 timing domain ofapproximately +/−t_(DQSS). During write operations the variable delaywrite circuitry 150, using information of the control signal Sel[2,1,0],selects one signal of the delayed write data signals WD for transmissionto memory component 104-2 as signal W1 and one delayed data valid signalT0+Y for transmission to memory component 104-2 as signal TW1. Each ofthe selected signals W1 and TW1 has a delay that best compensates forthe mismatch of the propagation delay values (t_(PD-A) and t_(PD-W)values) resulting from differences in the respective signal paths thatcouple the data W1 and valid TW1 signals to the memory component 104-2.In this manner the variable delay write circuitry 150 allows for relaxedsignal path matching constraints (for the t_(PD-A) and t_(PD-W) values)while reducing the burden on the interface circuitry to compensate formisalignment between the timing events of the data valid signals TW2 andthe corresponding address/control valid signals TA2.

Operation of memory component 104-3 is similar to that of memorycomponent 104-2. The address and control signal A3 is received at thememory component 104-3 along with the address valid signal TA3, and iscoupled to the core circuitry 114-3 of the memory component 104-3. Thiscore circuitry 114-3 operates in the TA3 timing domain. The write datasignal W3 is received at the write circuitry 124-3 along with the datavalid signal TW3. The write circuitry 124-3 operates in the TW3 timingdomain. In writing data to the core circuitry 114-3 of the memorycomponent 104-3 during a write operation, write data W3 received at thewrite circuitry 124-3 (TW3 timing domain) must be transferred to thecore circuitry 114-3 (TA3 timing domain). This transfer is accomplishedby the interface circuitry 134-3, where the interface circuitry 134-3compensates for timing differences between the TW3 timing domain and theTA3 timing domain.

FIG. 2 is another block diagram of the memory system 100 that includesvariable delay write circuitry 150 for generating variably delayed writedata signals W1 and variably delayed data valid signals TW1, under anembodiment. As described above the variable delay write circuitry 150includes delay circuits 152, storage circuits 154, and output circuits156. The delay circuits 152 receive write data valid signals T0 and inresponse generate a plurality of data valid signals T0+Y.

The delay circuits 152 of an embodiment include a delay line 202, acompare circuit or comparator 204, and a delay control signal 206 thatfunction as a delay-locked-loop (DLL) to produce a number of accuratedelay signals. The delay line 202 includes four unit delay elements DE1,DE2, DE3, and DE4 coupled in series; alternative embodiments can includeany number of unit delay elements. Each unit delay element DE1–DE4delays the input signal by an amount that is approximately equal to themedian delay of the variable delay element DE1–DE4, such as one-fourthof the timing signal clock period (i.e., 90 degrees), but alternativeembodiments will use other delay values.

The first unit delay element DE1 in the series of delay elements couplesto receive the write data valid signal T0 as an input. The delay line202 provides a delayed signal having a total delay that is approximatelyone period of the write data timing signal T0. Therefore, each of thefour unit delay elements DE1–DE4 delays the write data valid signal T0by an amount that is approximately one-fourth of the write data validsignal T0 period.

The delay line 202 (delayed signal) couples to a first input of thecomparator 204 while the write data valid signal T0 (undelayed signal)couples to a second input of the comparator 204. The comparator usesinformation of a comparison between the write data valid signal T0 andthe delayed write data valid signal of the delay line 202 (one clockperiod delay) to generate the control signal 206. The comparator outputsthe control signal 206 for use in controlling delays or timing offsetsof one or more of the unit delay elements DE1–DE4. The control signal206 can be any of a variety of signal types known in the art, such asvoltage bias signals, current bias signals, or digital delay-controlsignals. The offsets of the delay elements DE1–DE4 are controlled withina pre-specified range in response to variations in operating parametersof the memory system 100.

The delay circuits 152 output four data valid signals that couple toeach of the storage circuits 154 and output circuits 156. In addition tooutputting the write data valid signal T0 (alternatively referred toherein as T0+0.00), the delay circuits 152 provide three delayed validsignals with delays of +0.25, +0.50, and +0.75 clock periods or cyclesof the write data valid signal T0. The output of the first unit delayelement DE1 provides the first delayed valid signal with a +0.25 perioddelay (T0+0.25), the output of the second unit delay element DE2provides the second delayed valid signal with a +0.50 period delay(T0+0.50), and the output of the third unit delay element DE3 providesthe third delayed valid signal with a +0.75 period delay (T0+0.75), butthe embodiment is not so limited.

The delay circuits of various alternative embodiments can include one ormore phase-locked-loops (PLLs) instead of the DLL to generate thedelayed valid signals. The PLLs produce phase-aligned signals havingfour times the frequency of the write data valid signal, but are not solimited.

The storage circuits 154 of an embodiment include a 2-to-1 multiplexer220 that couples to receive input signals comprising the write datasignal W0 and a delayed write data signal W0+1.00. The multiplexer 220receives the delayed write data signal W0+1.00 via a coupling with afirst register storage element 222. The first register storage element222 couples to receive and load the write data signal W0 in response toa rising edge on the write data valid signal T0, but is not limited toloading on a rising edge. The first register storage element 222 outputsthe delayed write data signal W0+1.00, which is delayed by approximately1.00 clock period. The delayed write data signal W0+1.00 of alternativeembodiments can be delayed by different clock periods.

The multiplexer 220 selects one of the write data signal W0 and thedelayed write data signal W0+1.00 as an output data signal 226 inresponse to information of a control signal Sel[2], as described below.Consequently, the multiplexer 220 provides output data signals 226having a variable delay of approximately zero (0.00) or 1.00 clockperiods or cycles.

The output data signal 226 of the multiplexer couples to an input of asecond register storage element 228. The second register storage element228 receives and loads the output data signal 226 in response to arising edge on the write data valid signal T0, but is not limited toloading the signal on the rising edge. The second register storageelement 228 outputs a delayed write data signal 230 delayed byapproximately 1.00 clock period relative to the received data signal226. The delayed write data signal 230 of alternative embodiments can bedelayed by different time periods.

The delayed write data signal 230 output of the second register storageelement 228 couples to a series coupling of four register storageelements 232/236/240/244; alternative embodiments can include anynumber/combination of register storage elements. Each of the seriesstorage elements 232/236/240/244 generally couples to receive and load adelayed write data signal in response to a falling edge of a data validsignal received from the delay circuits 152, but is not limited toloading the signal on the falling edge. Further, each of the seriesstorage elements 232/236/240/244 outputs a delayed write data signalthat is delayed relative to its input in accordance with the data validsignal used as the clock signal of the series storage element asdescribed below; alternative embodiments can use different values and/orcombinations of delay periods.

For example, the first series storage element 232 of the series couplesto receive and load the delayed write data signal 230 from the secondregister storage element 228 in response to a falling edge on the writedata valid signal T0+0.00. The first series storage element 232 outputsa delayed write data signal 234 that is undelayed relative to thedelayed write data signal 230. The delayed write data signal 234, whichhas a delay of either approximately 1.00 or 2.00 clock periods relativeto the write data signal W0 (depending on control signal Sel[2]),couples to the input of the second series storage element 236 as well asan input of the output circuitry 156.

The second series storage element 236 of the series couples to receiveand load the delayed write data signal 234 from the first series storageelement 232 in response to a falling edge on the write data valid signalT0+0.25. The second series storage element 236 therefore outputs adelayed write data signal 238 that is further delayed by one-quarterclock period relative to the delayed write data signal 234. The delayedwrite data signal 238, which has a delay of either approximately 1.25 or2.25 clock periods relative to the write data signal W0 (depending oncontrol signal Sel[2]), couples to the input of the third series storageelement 240 as well as an input of the output circuitry 156.

The third series storage element 240 of the series couples to receiveand load the delayed write data signal 238 from the second seriesstorage element 236 in response to a falling edge on the write datatiming valid T0+0.50. The third series storage element 240 thus outputsa delayed write data signal 242 that is further delayed by one-quarterclock period relative to the delayed write data signal 238. The delayedwrite data signal 242, which has a delay of either approximately 1.50 or2.50 clock periods relative to the write data signal W0 (depending oncontrol signal Sel[2]), couples to the input of the fourth seriesstorage element 244 as well as an input of the output circuitry 156.

The fourth series storage element 244 of the series couples to receiveand load the delayed write data signal 242 from the third series storageelement 240 in response to a falling edge on the write data valid signalT0+0.75. The fourth series storage element 244 therefore outputs adelayed write data signal 246 that is further delayed by one-quarterclock period relative to the delayed write data signal 242. The delayedwrite data signal 246, which has a delay of either approximately 1.75 or2.75 clock periods relative to the write data signal W0 (depending oncontrol signal Sel[2]), couples to an input of the output circuitry 156.

The output circuitry 156 of an embodiment includes two multiplexers 262and 264 which, under control of control signal Sel[1,0], allow selectionof one of the four delayed versions of the write data signal W0 and oneof the four data valid signals T0, respectively, for output to thememory components. A first 4-to-1 multiplexer 262 couples to receiveinput signals 234/238/242/246 from the storage circuits 154. The inputsignals 234/238/242/246 include the four delayed versions of the writedata signal W0. When the input multiplexer 220 of the storage circuits154 selects the write data signal W0 as the output data signal 226 inresponse to information of control signal Sel[2], the input signals234/238/242/246 have delays of approximately 1.00/1.25/1.50/1.75periods, respectively. Alternatively, when the input multiplexer 220 ofthe storage circuits 154 selects the delayed write data signal W0+1.00as the output data signal 226 in response to information of controlsignal Sel[2], the input signals 234/238/242/246 have delays ofapproximately 2.00/2.25/2.50/2.75 periods, respectively. The write datasignal selected for output from the first multiplexer 262 is driven ontothe write data signal path as variable delay write data signal W1 fortransmission to the memory components 104.

A second 4-to-1 multiplexer 264 of the output circuitry 156 couples toreceive input signals T0+0.00/T0+0.25/T0+0.50/T0+0.75 from the delaycircuits 152. The input signals T0+0.00/T0+0.25/T0+0.50/T0+0.75 includefour different versions of the write data valid signal T0. The datavalid signal selected for output from the second multiplexer 264 isdriven onto the write data signal path as variable delay valid signalTW1 for transmission to the memory components 104.

FIG. 3 is a timing diagram 300 showing the delayed data valid signalsT0+Y (where “Y” is one of 0.00 (+1.00), +0.25, +0.50, and +0.75) alongwith the corresponding write data valid signals TW1 selected for outputby the variable delay write circuitry, under an embodiment. With furtherreference to FIG. 2, the delay circuits 152 output the write data validsignal T0 (T0+0.00) along with three delayed data valid signals, asdescribed above. The first delayed data valid signal T0+0.25 has a +0.25period delay, the second delayed data valid signal T0+0.050 has a +0.50period delay, and the third delayed data valid signal T0+0.075 has a+0.75 period delay (T0+0.75), but the embodiment is not so limited. TheT0+1.00 timing signal will be approximately the same as the T0+0.00signal, since T0 is periodic in this example.

The write data valid signals T0+Y are used as described above togenerate numerous variable delay write data signals for use as datawrite signal W1. The write data signal W1 is therefore a selectivelydelayed version of the write data signal W0 which can be selectivelydelayed in approximately 0.25-period increments over a range of 1.00 to2.75 periods using the control signal Sel[2,1,0]. Note that only thedata valid signal TW1 is shown in the timing diagram 300 to representeach of the eight delayed write data signals because the correspondingwrite data signal W1 remains centered on the variable delay write datatiming signal TW1 in each case (as the relationship is shown with thesignal combination W0 relative to T0 320).

The variable delay write circuitry outputs a write data valid signal TW1302 delayed by approximately 1.00 period when the control signalSel[2,1,0] includes logic values “000”. With further reference to FIG.2, the first logic value (“0”) forms control signal Sel[2] which selectswrite data signal W0+0.00 as the output of multiplexer 220. The secondand third logic values (“00”) of control signal Sel[1,0] select thetiming signal T0+1.00 as the valid signal TW1 output 302 of multiplexer264 (it is assumed that the T0 signal is periodic, so that a delay ofT0+1.00 is generated using the next timing event (a rising edge in thisexample); the circuitry to do this is a component of enabling logic thatcreates timing events on the TW1 signal when the TW1 signal is notperiodic). The control signal Sel[1,0] also selects the write datasignal 234 (W0+1.00) as the write data signal W1 output from multiplexer262.

The variable delay write circuitry outputs a write data valid signal TW1304 delayed by approximately 1.25 periods when the control signalSel[2,1,0] includes logic values “001”. The first logic value (“0”)forms control signal Sel[2] which selects write data signal W0+0.00 asthe output of multiplexer 220. The second and third logic values (“01”)of control signal Sel[1,0] select the timing signal T0+0.25 as the validsignal TW1 output 304 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.25 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 238 (W0+1.25) as the write data signal W1 output ofmultiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 306 delayed by approximately 1.50 periods when the control signalSel[2,1,0] includes logic values “010”. The first logic value (“0”)forms control signal Sel[2] which selects write data signal W0+0.00 asthe output of multiplexer 220. The second and third logic values (“10”)of control signal Sel[1,0] select the timing signal T0+0.50 as the validsignal TW1 output 306 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.50 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 242 (W0+1.50) as the write data signal W1 output ofmultiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 308 delayed by approximately 1.75 periods when the control signalSel[2,1,0] includes logic values “011”. The first logic value (“0”)forms control signal Sel[2] which selects write data signal W0+0.00 asthe output of multiplexer 220. The second and third logic values (“11”)of control signal Sel[1,0] select the timing signal T0+0.75 as the validsignal TW1 output 308 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.75 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 246 (W0+1.75) as the write data signal W1 output ofmultiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 310 delayed by approximately 2.00 periods when the control signalSel[2,1,0] includes logic values “100”. The first logic value (“1”)forms control signal Sel[2] which selects write data signal W0+1.00 asthe output of multiplexer 220. The second and third logic values (“00”)of control signal Sel[1,0] select the timing signal T0+1.00 as the validsignal TW1 output 310 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.00 is generated using thenext timing event (a rising edge in this example); the circuitry to dothis is a component of enabling logic that creates timing events on theTW1 signal when the TW1 signal is not periodic). The control signalSel[1,0] also selects the write data signal 234 (W0+2.00) as the writedata signal W1 output of multiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 312 delayed by approximately 2.25 periods when the control signalSel[2,1,0] includes logic values “101”. The first logic value (“1”)forms control signal Sel[2] which selects write data signal W0+1.00 asthe output of multiplexer 220. The second and third logic values (“01”)of control signal Sel[1,0] select the timing signal T0+0.25 as the validsignal TW1 output 312 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.25 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 238 (W0+2.25) as the write data signal W1 output ofmultiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 314 delayed by approximately 2.50 periods when the control signalSel[2,1,0] includes logic values “110”. The first logic value (“1”)forms control signal Sel[2] which selects write data signal W0+1.00 asthe output of multiplexer 220. The second and third logic values (“10”)of control signal Sel[1,0] select the timing signal T0+0.50 as the validsignal TW1 output 314 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.50 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 242 (W0+2.50) as the write data signal W1 output ofmultiplexer 262.

The variable delay write circuitry outputs a write data timing signalTW1 316 delayed by approximately 2.75 periods when the control signalSel[2,1,0] includes logic values “111”. The first logic value (“1”)forms control signal Sel[2] which selects write data signal W0+1.00 asthe output of multiplexer 220. The second and third logic values (“11”)of control signal Sel[1,0] select the timing signal T0+0.75 as the validsignal TW1 output 316 of multiplexer 264 (it is assumed that the T0signal is periodic, so that a delay of T0+1.75 is generated using thenext timing event). The control signal Sel[1,0] also selects the writedata signal 246 (W0+2.75) as the write data signal W1 output ofmultiplexer 262.

As described above, control signals Sel[2,1,0] control selection of awrite data signal W1 and the corresponding write data valid signal TW1having a delay value appropriate to the signal paths between the memorycontroller and the memory components. The control signals are providedby one or more control circuits (not shown) that are components ofand/or coupled to the memory controller. As an example, the controlcircuits of one or more embodiments can include one or more programmableregisters. The content of the programmable registers, which controlselection of the write data signal W1 and corresponding write data validsignal TW1 provided by the variable delay write circuitry, is determinedin accordance with several approaches, including both automatic anduser-programmable processes.

In one embodiment the content of the programmable registers isdetermined using information of a calibration process and automaticallyprogrammed into the registers of the control circuits. Generally, acalibration process can evaluate and compare the relative propagationdelay information of each of the address/control signals and thecorresponding write data signals across the respective signal paths. Inso doing, the calibration process determines which of the delayed writedata signals and delayed write data valid signals is optimal for use inwriting data to the memory components. Alternatively, the content of theprogrammable registers is manually programmed into the registers of thecontrol circuits by a user.

Regarding the calibration process of an embodiment, and taking onememory component as an example, a memory controller or other componentof a host system places one or more components of the memory system in acalibration mode. In the calibration mode, the memory controllerperforms a series of dummy write operations to the memory componentduring which a number of write operation are performed, with each writeoperation using a different one of the delayed versions of the writedata signal. A dummy write is generally defined to include a process inwhich a memory controller writes pre-specified data to a memorycomponent, independent of any data needs of components of the memorysystem or other higher layer machine-readable code; these writes areperformed at power-up, or other intervals in which the memory componentwas otherwise not being utilized.

Following completion of the dummy write operations the memory controllerreads the data of all dummy write operations from the memory componentand compares the read data with the actual data written to identifysuccessful write operations. Timing information of the successful dummywrite operations allows for identification of the particular delayedwrite data signal providing the best timing margin. The logic valuesthat identify the delayed write data signal providing the best timingmargin are then programmed into the programmable registers.

Generally the memory system selects a delayed data signal for writeoperations that minimizes, the difference between the propagation delaytimes of the data signals and the corresponding address/control signals.The propagation delay times are as measured across signal paths betweenthe memory controller and one or more memory components but are not solimited. FIG. 4 is a block diagram 400 for generating write data signalsand write data valid signals with selectable delays for use in memorywrite operations, under an embodiment. Circuitry or components of amemory system, for example a memory controller, select data for writeoperations to memory components or devices, at block 402. The memorysystem of an embodiment generates data signals and data valid signalsfor use in transferring the selected data of the write operation to thememory components via a first signal path, at block 404. The memorysystem uses the data valid signals to generate delayed data validsignals that include multiple delayed versions of the data valid signal,at block 406, where each delayed data valid signal has a differentamount of delay. The memory system, using the delayed data validsignals, generates delayed data signals that include multiple delayedversions of the data signal, at block 408. Each delayed data signal alsohas a different amount of delay, but the embodiment is not so limited.

During memory write operations, components of the memory system transferthe data signals and data valid signals to the memory components via afirst signal path. Additionally, address/control signals andaddress/control valid signals are generated and transferred to thememory components via a second signal path. Control signals select oneof the delayed data signals and one of the delayed data valid signalsfor use in driving data of the write operations to the memorycomponents, at block 410. Selection of a particular delayed data signaland corresponding delayed data valid signal is in accordance withpre-determined differences in propagation delay times between the firstand second signal paths. Thus, the memory system selects the delayeddata signal and delayed data valid signal that minimizes the differencebetween the propagation delay times of the data signals across the firstsignal path and the address/control signals across the second signalpath. The selected data is transferred to the memory components usingthe delayed data signal, at block 412.

FIG. 5 is a timing diagram 500 for signals of an example write operationin a memory system that generates write data signals with variabledelays, under an embodiment. As described above, a memory controllerselects write data for a write operation to a memory component andgenerates data signals W0 and corresponding data valid signals T0 foruse in transferring the data to the memory components via a write datasignal path. Additionally the memory controller generatesaddress/control signals A0 and address/control valid signals T0corresponding to the data signals W0, and transfers the signals A0 andT0 to the memory components via an address/control signal path.

The memory controller uses the data valid signals T0 to generate anumber of delayed data valid signals. The delayed data valid signals ofan embodiment include a data valid signal delayed approximately 0.00(1.00) clock periods, a data valid signal delayed approximately 0.25clock periods, a data valid signal delayed approximately 0.50 clockperiods, and a data valid signal delayed approximately 0.75 clockperiods, but are not so limited. The memory system also uses the delayeddata valid signals along with the data signals W0 to generate a numberof delayed data signals. The delayed data signals of an embodimentinclude a data signal delayed approximately 1.00 clock period, a datasignal delayed approximately 1.25 clock periods, a data signal delayedapproximately 1.50 clock periods, a data signal delayed approximately1.75 clock periods, a data signal delayed approximately 2.00 clockperiods, a data signal delayed approximately 2.25 clock periods, a datasignal delayed approximately 2.50 clock periods, and a data signaldelayed approximately 2.75 clock periods, but are not so limited.

The memory controller uses control signals to select one of the delayeddata signals and one of the delayed data valid signals for use in thewrite operation. The selection of the delayed signals is in accordancewith pre-determined differences between signal propagation times acrossthe address/control signal path (t_(PD-A)) and signal propagation timesacross the write data signal path (t_(PD-w)). In particular, the memorycontroller selects the signals having a delay value that minimizes thedifference between the propagation delay times t_(PD-A) and t_(PD-w).

The pre-determined differences between the signal propagation times aredetermined during a calibration process, as described above, but are notso limited. This example assumes a difference between propagation delaytimes that results in selection of a 2.25 clock period delay(corresponding to control signal Sel[2,1,0] that includes logic values“101”).

The memory controller drives the address/control signals A0 andaddress/control valid signals T0 onto the address/control signal path asaddress/control signals A1 and address/control valid signals TA1. Thememory component receives the address/control signals A2 andaddress/control valid signals TA2 at time t_(PD-A) later followingpropagation across the address/control signal path.

Under control of control signal Sel[2,1,0] the memory controller driveseach of the data signals W1 and data valid signals TW1 onto the writedata signal path at a time that is 2.25 clock periods after driving theaddress/control signals A1 and address/control valid signals TA1. Thememory component receives the data signals W2 and data valid signals TW2at time t_(PD-W) later following propagation across the write datasignal path.

While write operations result in a mismatch between the timing of theaddress/control signals and data signals at the memory component(s), thememory system using variable delay write circuitry reduces the magnitudeof this mismatch. A comparison of the signal timing 500 of the memorysystem using data write signals with variable delays to signal timing900 of the memory system using data signals with fixed delays, withreference to FIG. 5 and FIG. 9, shows a reduction in the timing mismatchbetween the timing events in the two systems when using the variabledelays. The additional 0.25 clock period delay of the variable delaysignal (relative to the fixed delay signal in memory system 800 of FIG.8) compensates for the fact that the t_(PD-A) delay is greater than thet_(PD-W) delay. Consequently, the difference 502 in rising edge timingevents of the address/control signals TA2 and the data signals TW2 usingvariable delays is reduced when compared to the difference 902 in risingedge timing events of the address/control signals and the data signalsusing fixed delays. The closer alignment of the rising edge timingevents allows the interface circuitry to readily compensate for thetiming mismatch thus increasing the reliability and accuracy of datawrites to memory components while relaxing the signal path matchingconstraints.

One or more alternative embodiments can apply a select delay toindependent sets of write data signals WX and timing signals TWX. Forexample, a memory controller can generate/use one delayed timing signalTW1 for every eight data signals W1. Each group of nine TW1/W1 signalstherefore would use the same amount of delay.

Furthermore, the variable delay write circuitry of an embodiment alsoprovides increased control over propagation delay differences in writeoperations to memory components of multiple-slice memory systems. FIG. 6is a block diagram of a multiple-slice memory system 600 that includesthe variable delay write circuitry 150 for generating write data signalsand data valid signals with variable delays, under an embodiment. Thismemory system 600 includes a memory controller 602 coupled to one ormore memory components 604-a in memory slice Sa and one or more memorycomponents 604-b in memory slice Sb; while two memory slices are shownthe embodiment is not limited to any number of memory slices and/orcomponents. The memory controller 602 drives address/control signals Aand address/control valid signals TA to the memory components604-a/604-b.

Difficulty can be found in controlling the difference between thepropagation delays of the TA/A signals and the TW/W signals in thismulti-slice memory system because the TA/A signals are coupled to two ormore memory components (slices). Each slice Sa and Sb therefore sees adifferent propagation delay on the TA/A signals (t_(PD-Aa), t_(PD-Ab))as a result. The delay of the TW/W signal groups (t_(PD-Wa), t_(PD-Wb))will however tend to be approximately the same, since these signalgroups have a similar routing topology.

The memory controller 602 of an embodiment can use the variable delaywrite circuitry 150 to accommodate the different propagation delayvalues between memory slices Sa and Sb. The variable delay writecircuitry 150 can be programmed to different delay values for each TW/Wsignal group in order to accommodate the differences in propagationdelays between the TA/A signals to the respective memory slices. Forexample, the variable delay write circuitry 150 operating generally asdescribed above with reference to FIGS. 1–5 transfers write data signalsWa and write data valid signals TWa to memory component 604-a wheresignals Wa/TWa are delayed using a first variable delay. Likewise,variable delay write circuitry 150 transfers write data signals Wb andwrite data valid signals TWb to memory component 604-b where signalsWb/TWb are delayed using a second variable delay.

The variable delay write circuitry of an embodiment also providesincreased control over propagation delay differences in write operationsto memory components of multiple-rank memory systems. FIG. 7 is a blockdiagram of a multiple-rank memory system 700 that includes the variabledelay write circuitry 150 for generating write data signals and datavalid signals with variable delays, under an embodiment. This memorysystem 700 includes a memory controller 702 coupled to on or more memorycomponents 704-z in memory rank Rz and one or more memory components704-y in memory rank Ry; while two memory ranks are shown the embodimentis not limited to any number of memory ranks and/or components. Thememory controller 702 drives write data signals W and write data validsignals TW to the memory components 704-z/ 704-y.

Difficulty can be found in controlling the difference between thepropagation delays of the TA/A signals and the TW/W signals in thismulti-rank memory system because the TW/W signals are coupled to two ormore memory components (ranks). Each rank Rz and Ry therefore sees adifferent propagation delay on the TW/W signals (t_(PD-Wz), t_(PD-Wy))as a result. The delay of the TA/A signal groups (t_(PD-Az), t_(PD-Ay))will however tend to be approximately the same, since these signalgroups have a similar routing topology.

The memory controller 702 of an embodiment can use the variable delaywrite circuitry 150 to accommodate the different propagation delayvalues between memory ranks Rz and Ry. The variable delay writecircuitry 150 can be programmed to different delay values for each TA/Asignal group in order to accommodate the differences in propagationdelays between the TW/W signals to the respective memory ranks. Forexample, the variable delay write circuitry 150 operating generally asdescribed above with reference to FIGS. 1–5 transfers address/controlsignals Az and address/control valid signals TAz to memory component704-z where signals Az/TAz are delayed using a first variable delay.Likewise, variable delay write circuitry 150 transfers address/controlsignals Ay and address/control valid signals TAy to memory component704-y where signals Ay/TAy are delayed using a second variable delay.

The components of the memory systems described above include anycollection of computing components and devices operating together. Thecomponents of the memory systems can also be components or subsystemswithin a larger computer system or network. The memory system componentscan also be coupled among any number of components (not shown), forexample other buses, controllers, memory devices, and data input/output(I/O) devices, in any number of combinations. Many of these systemcomponents may be soldered to a common printed circuit board (forexample, a graphics card or game console device), or may be integratedin a system that includes several printed circuit boards that arecoupled together in a system, for example, using connector and socketinterfaces such as those employed by personal computer motherboards anddual inline memory modules (“DIMM”). In other examples, complete systemsmay be integrated in a single package housing using a system in package(“SIP”) type of approach. Integrated circuit devices may be stacked ontop of one another and utilize wire bond connections to effectuatecommunication between chips or may be integrated on a single planarsubstrate within the package housing.

Further, functions of the memory system components can be distributedamong any number/combination of other processor-based components. Thememory systems described above include, for example, various dynamicrandom access memory (DRAM) systems. As examples, the DRAM memorysystems can include double data rate (“DDR”) systems like DDR SDRAM aswell as DDR2 SDRAM and other DDR SDRAM variants, such as Graphics DDR(“GDDR”) and further generations of these memory technologies, i.e.,GDDR2, and GDDR3, but is not limited to these memory systems.

Aspects of the system for per-bit offset control and calibrationdescribed herein may be implemented as functionality programmed into anyof a variety of circuitry, including programmable logic devices (PLDs),such as field programmable gate arrays (FPGAs), programmable array logic(PAL) devices, electrically programmable logic and memory devices andstandard cell-based devices, as well as application specific integratedcircuits (ASICs). Some other possibilities for implementing aspects ofthe per-bit offset control and calibration system include:microcontrollers with memory (such as electronically erasableprogrammable read only memory (EEPROM)), embedded microprocessors,firmware, software, etc. Furthermore, aspects of the per-bit offsetcontrol and calibration system may be embodied in microprocessors havingsoftware-based circuit emulation, discrete logic (sequential andcombinatorial), custom devices, fuzzy (neural) logic, quantum devices,and hybrids of any of the above device types. Of course the underlyingdevice technologies may be provided in a variety of component types,e.g., metal-oxide semiconductor field-effect transistor (MOSFET)technologies like complementary metal-oxide semiconductor (CMOS),bipolar technologies like emitter-coupled logic (ECL), polymertechnologies (e.g., silicon-conjugated polymer and metal-conjugatedpolymer-metal structures), mixed analog and digital, etc.

It should be noted that the various circuits disclosed herein may bedescribed using computer aided design tools and expressed (orrepresented), as data and/or instructions embodied in variouscomputer-readable media, in terms of their behavioral, registertransfer, logic component, transistor, layout geometries, and/or othercharacteristics. Formats of files and other objects in which suchcircuit expressions may be implemented include, but are not limited to,formats supporting behavioral languages such as C, Verilog, and HLDL,formats supporting register level description languages like RTL, andformats supporting geometry description languages such as GDSII, GDSIII,GDSIV, CIF, MEBES and any other suitable formats and languages.Computer-readable media in which such formatted data and/or instructionsmay be embodied include, but are not limited to, non-volatile storagemedia in various forms (e.g., optical, magnetic or semiconductor storagemedia) and carrier waves that may be used to transfer such formatteddata and/or instructions through wireless, optical, or wired signalingmedia or any combination thereof. Examples of transfers of suchformatted data and/or instructions by carrier waves include, but are notlimited to, transfers (uploads, downloads, e-mail, etc.) over theInternet and/or other computer networks via one or more data transferprotocols (e.g., HTTP, FTP, SMTP, etc.).

When received within a computer system via one or more computer-readablemedia, such data and/or instruction-based expressions of the abovedescribed circuits may be processed by a processing entity (e.g., one ormore processors) within the computer system in conjunction withexecution of one or more other computer programs including, withoutlimitation, net-list generation programs, place and route programs andthe like, to generate a representation or image of a physicalmanifestation of such circuits. Such representation or image maythereafter be used in device fabrication, for example, by enablinggeneration of one or more masks that are used to form various componentsof the circuits in a device fabrication process.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense as opposed to anexclusive or exhaustive sense; that is to say, in a sense of “including,but not limited to.” Words using the singular or plural number alsoinclude the plural or singular number respectively. Additionally, thewords “herein,” “hereunder,” “above,” “below,” and words of similarimport refer to this application as a whole and not to any particularportions of this application. When the word “or” is used in reference toa list of two or more items, that word covers all of the followinginterpretations of the word: any of the items in the list, all of theitems in the list and any combination of the items in the list.

The above description of illustrated embodiments of the memory systemsand methods is not intended to be exhaustive or to limit the memorysystems and methods to the precise form disclosed. While specificembodiments of, and examples for, the memory systems and methods aredescribed herein for illustrative purposes, various equivalentmodifications are possible within the scope of the memory systems andmethods, as those skilled in the relevant art will recognize. Theteachings of the memory systems and methods provided herein can beapplied to other processing systems and methods, not only for the memorysystems and methods described above.

The elements and acts of the various embodiments described above can becombined to provide further embodiments. These and other changes can bemade to the memory systems and methods in light of the above detaileddescription.

In general, in the following claims, the terms used should not beconstrued to limit the memory systems and methods to the specificembodiments disclosed in the specification and the claims, but should beconstrued to include all processing systems that operate under theclaims. Accordingly, the memory systems and methods is not limited bythe disclosure, but instead the scope of the memory systems and methodsis to be determined entirely by the claims.

While certain aspects of the memory systems and methods are presentedbelow in certain claim forms, the inventor contemplates the variousaspects of the memory systems and methods in any number of claim forms.For example, while only one aspect of the system is recited as embodiedin computer-readable medium, other aspects may likewise be embodied incomputer-readable medium. Accordingly, the inventor reserves the rightto add additional claims after filing the application to pursue suchadditional claim forms for other aspects of the memory systems andmethods.

1. A circuit comprising: a delay circuit that receives timing signalsand generates a plurality of delayed timing signals; a driver circuitcoupled to the delay circuit, the driver circuit to receive write datasignals corresponding to the timing signals, the driver circuit usingthe delayed timing signals to generate at least one output write datasignal having a variable delay; an output circuit coupled to the drivercircuit and coupled to the delay circuit, the output circuittransferring write data to a memory component using the output writedata signal and a selected one of the delayed timing signals.
 2. Thecircuit of claim 1, wherein the delay circuit comprises: a plurality ofunit delay elements coupled in series, the series of unit delay elementsreceiving the timing signals as an input; and a comparator, thecomparator coupled to receive the timing signals and an output of theunit delay elements, the comparator coupled to output a control signalto at least one of the plurality of unit delay elements, the controlsignal controlling timing offsets of the unit delay elements in responseto information of a comparison between the timing signals and thedelayed timing signals.
 3. The circuit of claim 1, wherein the delaycircuit comprises at least one phase-locked loop that generates theplurality of delayed timing signals from a plurality of phase-alignedsignals, the plurality of phase-aligned signals comprising signals thatare frequency multiples of the received timing signal.
 4. The circuit ofclaim 1, wherein the driver circuit includes a plurality of seriesregister storage elements coupled in series and clocked by the delayedtiming signals, the driver circuit generating a plurality of outputwrite data signals that are delayed versions of the received write datasignals.
 5. The circuit of claim 1, wherein the driver circuit includesa multiplexer that couples to receive the write data signals at a firstinput and a first delayed write data signal at a second input.
 6. Thecircuit of claim 5, further comprising a first register storage elementthat couples to receive the write data signals at an input, the firstregister storage element loading the write data signal in response to atiming event of the timing signals and outputting the first delayedwrite data signal.
 7. The circuit of claim 5, further comprising asecond register storage element that couples to receive an output signalof the multiplexer, the output signal comprising one of the write datasignal and the first delayed write data signal, the second registerstorage element loading the output signal in response to a timing eventof the timing signals and outputting a second delayed write data signal.8. The circuit of claim 7, further comprising a plurality of seriesstorage elements coupled in series to an output of the second registerstorage element, wherein each series storage element couples to load adelayed version of the write data signal in response to a timing eventof one of the delayed timing signals.
 9. The circuit of claim 1, whereinthe output circuit comprises a first multiplexer coupled to receive aplurality of output write data signals from the driver circuit, whereineach of the output write data signals is delayed by a different periodrelative to the write data signals.
 10. The circuit of claim 1, whereinthe output circuit comprises a second multiplexer coupled to receive theplurality of delayed timing signals from the driver circuit, whereineach of the delayed timing signals is delayed by a different periodrelative to the timing signals.
 11. The circuit of claim 1, wherein theoutput write data signals include eight signals with each of the eightsignals being delayed by a delay value that is approximately in a rangeof one (1) to 1.75 periods of the timing signal.
 12. The circuit ofclaim 1, wherein the output write data signals include eight signalswith each of the eight signals being delayed by a delay value that isapproximately in a range of two (2) to 2.75 periods of the timingsignal.
 13. The circuit of claim 1, further comprising a control signalthat couples to control the output circuit, the control signal selectingthe output write data signal and a corresponding one of the delayedtiming signal in response to information of a pre-determined differencein propagation delay times between first and second signal paths, thefirst signal path carrying the output write data signal and the secondsignal path carrying the delayed timing signal.
 14. The circuit of claim13, wherein the selected output write data signal and the selecteddelayed timing signal minimize the difference in propagation delaytimes.
 15. The circuit of claim 13, further comprising at least oneregister, wherein contents of the register determine information of thecontrol signal, wherein the register includes at least one of auser-programmable register and an automatically programmable register.16. The circuit of claim 15, further comprising a calibration circuitthat determines the contents of the register by comparing relativepropagation delay information of each output write data signal and thecorresponding ones of the plurality of delayed timing signals.
 17. Acircuit comprising: delay circuitry that receives a data-valid signaland generates a plurality of delayed data-valid signals that are delayedversions of the data-valid signal; driver circuitry that includes aplurality of register storage elements coupled in series and clocked byat least one of the delayed data-valid signals, the driver circuitryreceiving a data signal and generating a plurality of delayed datasignals that are delayed versions of the received data signal; outputcircuitry that selects one of the delayed data-valid signals and one ofthe delayed data signals for output to at least one memory component inresponse to relative timing information of the data signal and acorresponding address signal.
 18. The circuit of claim 17, furthercomprising address circuitry that provides an address signal and anaddress-valid signal to the memory component, wherein the address signaland address-valid signal correspond to the data signal.
 19. The circuitof claim 17, wherein the delay circuit comprises at least one of adelay-locked loop and a phase-locked loop.
 20. The circuit of claim 17,wherein the driver circuit includes a multiplexer that couples toreceive the data signal at a first input and a first delayed version ofthe data signal at a second input.
 21. The circuit of claim 17, whereinthe plurality of register storage elements includes a first registerstorage element that couples to load one of the data signal and a firstdelayed version of the data signal in response to a timing event of thedata-valid signal, the first register storage element generating asecond delayed version of the data signal.
 22. The circuit of claim 21,wherein the plurality of register storage elements further includes aseries coupling of four register storage elements that couple to receivethe second delayed version of the data signal, each of the four registerstorage elements coupled to load input signals in response to a timingevent of different one of the delayed data-valid signals, each of thefour register storage elements outputting a different one of the delayeddata signals.
 23. The circuit of claim 22, further comprising at leastone register, wherein contents of the register determine information ofthe control signal, wherein the register includes at least one of auser-programmable register and an automatically programmable register.24. The circuit of claim 23, further comprising calibration circuitrythat determines the contents of the register by comparing relativepropagation delay information of each of the delayed data signals andthe corresponding delayed data-valid signals.
 25. The circuit of claim17, wherein the output circuit comprises a plurality of multiplexerscoupled to receive the plurality of delayed data signals from the drivercircuitry and the plurality of delayed data-valid signals from the delaycircuitry.
 26. The circuit of claim 17, further comprising circuitrythat generates a control signal that couples to control at least one ofthe driver circuitry and the output circuit, the control signalcontrolling selection of the delayed data-valid signal and delayed datasignal at the output circuitry in order to minimize a difference inpropagation delay times between the delayed data-valid signal andcorresponding address/control information transmitted to the memorycomponent.
 27. A memory system comprising: memory components; variabledelay circuitry that receives a data-valid signal and generates aplurality of delayed data-valid signals that are delayed versions of thedata-valid signal; driver circuitry including a plurality of registerstorage elements coupled to receive a data signal, each of the registerstorage elements clocked by a different one of the delayed data-validsignals to generate a delayed data signal; and output circuitry thatcouples the variable delay circuitry and the driver circuitry to a firstcircuit of the memory components via a first signal path, the outputcircuitry selecting one of the delayed data signals and a correspondingone of the delayed data-valid signals in response to signal propagationtiming information of signal transmissions between the memory componentsand the output circuitry.
 28. The system of claim 27, wherein the firstcircuit of the memory components is a write circuit, wherein the datasignal is a write data signal and the data-valid signal is a writedata-valid signal.
 29. The system of claim 28, further comprisingaddress/control circuitry that couples to a control circuit of thememory components via a second signal path, the address/controlcircuitry providing an address/control signal to the control circuitry,the address/control signal corresponding to the write data signal. 30.The system of claim 29, further comprising a control signal that couplesto control at least one of the driver circuitry and the outputcircuitry, the control signal controlling selection of the delayed datasignal and the delayed data-valid signal at the output select circuitryin order to minimize a difference in propagation delay times between thedelayed data signal of the first signal path and the address/controlsignal of the second signal path.
 31. The system of claim 27, whereinthe first circuit of the memory components is a control circuit, whereinthe data signal is an address/control data signal and the data-validsignal is an address/control data-valid signal.
 32. The system of claim31, further comprising write driver circuitry that couples to a writecircuit of the memory components via a second signal path, the writedriver circuitry providing a write data signal to the write circuit, thewrite data signal corresponding to the address/control data signal. 33.The system of claim 32, further comprising a control signal that couplesto control at least one of the driver circuitry and the outputcircuitry, the control signal controlling selection of the delayedaddress/control data signal and the delayed address/control data-validsignal at the output select circuitry in order to minimize a differencein propagation delay times between the delayed address/control datasignal of the first signal path and the write data signal of the secondsignal path.
 34. The system of claim 27, wherein the driver circuitryincludes a multiplexer that couples to receive the data signal at afirst input and a first delayed version of the data signal at a secondinput.
 35. The system of claim 27, wherein the plurality of registerstorage elements includes a first register storage element that couplesto load one of the data signal and a first delayed version of the datasignal in response to a timing event of the data-valid signal, the firstregister storage element generating a second delayed version of the datasignal.
 36. The system of claim 35, wherein the plurality of registerstorage elements further includes a series coupling of four registerstorage elements that couple to receive the second delayed version ofthe data signal, each of the four register storage elements coupled toload input signals in response to a timing event of different one of thedelayed timing signals, each of the four register storage elementsoutputting a different one of the delayed data signals.
 37. The systemof claim 27, wherein the output circuitry comprises a plurality ofmultiplexers coupled to receive the delayed data signals from the drivercircuitry and the plurality of delayed data-valid signals from thevariable delay circuitry.
 38. The system of claim 27, further comprisinga control signal that couples to control at least one of the drivercircuitry and the output circuitry, the control signal controllingselection of the delayed data signal and delayed data-valid signal atthe output circuitry in order to minimize a difference in propagationdelay times between signal transmissions to the memory component. 39.The system of claim 38, wherein contents of at least one registerdetermine information of the control signal, wherein the registerincludes at least one of a user-programmable register and anautomatically programmable register.
 40. The system of claim 39, furthercomprising calibration circuitry that uses each of the delayed datasignals and the corresponding delayed data-valid signals to perform adummy write operation to the memory components, the calibrationcircuitry determining the contents of the register by comparing relativetiming information of each dummy write operation.
 41. The system ofclaim 27, wherein the memory components include at least one of memorycomponents in one or more memory slices and memory components in one ormore memory ranks.
 42. A memory controller comprising: address circuitrythat couples a timing signal and address/control signals to a firstcircuit of at least one memory component; write data circuitry thatcouples delayed timing signals and delayed data signals to a secondcircuit of the memory components, the write data circuitry including, adelay circuit receiving the timing signal and, in response, generatingthe delayed timing signals that are delayed versions of the receivedtiming signal; a storage circuit including a plurality of registerstorage elements coupled in series and clocked by the delayed timingsignals, the storage circuit receiving data signals and generating aplurality of delayed data signals that are delayed versions of thereceived data signals; and output select circuit that selects one of thedelayed timing signals and one of the delayed data signals for output tothe second circuit of the memory components in response to relativetiming information of the address/control signals and the data signals.43. The controller of claim 42, wherein the delay circuit comprises atleast one of a delay-locked loop and a phase-locked loop.
 44. Thecontroller of claim 42, wherein the storage circuit includes amultiplexer that couples to receive the data signal at a first input anda first delayed version of the data signal at a second input.
 45. Thecontroller of claim 42, wherein the plurality of register storageelements includes a first register storage element that couples to loadone of the data signal and a first delayed version of the data signal inresponse to a timing event of the timing signal, the first registerstorage element generating a second delayed version of the data signal.46. The controller of claim 45, wherein the plurality of registerstorage elements further includes a series coupling of four registerstorage elements that couple to receive the second delayed version ofthe data signal, each of the four register storage elements coupled toload input signals in response to a timing event of different one of thedelayed timing signals, each of the four register storage elementsoutputting a different one of the delayed data signals.
 47. Thecontroller of claim 42, wherein the output select circuit comprises aplurality of multiplexers coupled to receive the plurality of delayeddata signals from the storage circuit and the plurality of delayedtiming signals from the delay circuit.
 48. The controller of claim 42,further comprising a control signal that couples to control at least oneof the storage circuit and the output select circuit, the control signalcontrolling selection of the delayed timing signal and delayed datasignal at the output select circuit in order to minimize a difference inpropagation delay times between the address/control signals and thedelayed data signals transmitted to the memory component.
 49. Thecontroller of claim 48, wherein contents of at least one registerdetermine information of the control signal, wherein the registerincludes at least one of a user-programmable register and anautomatically programmable register.
 50. The controller of claim 49,further comprising calibration circuitry that uses each of the delayeddata signals and the corresponding delayed timing signals to perform adummy write operation to the memory components, the calibrationcircuitry determining the contents of the register by comparing timinginformation of each dummy write operation.
 51. A circuit comprising:means for receiving a data signal and a corresponding data-valid signal;means for generating a plurality of delayed data-valid signals that aredelayed versions of the data-valid signal; means for generating aplurality of delayed data signals from the received data signal, whereineach delayed data signal is a delayed version of the data signalgenerated using one of the plurality of delayed data-valid signals; andmeans for determining differences in propagation delay times of signalsacross a first signal path and at least one other signal path.
 52. Thecircuit of claim 51, further comprising means for selecting one of thedelayed data signals and one of the delayed data-valid signals using thedetermined differences in propagation delay times.
 53. The circuit ofclaim 52, wherein the means for selecting includes at least one of auser-programmable means and an automatically programmable means.
 54. Thecircuit of claim 53, wherein the means for selecting further comprisesmeans for performing a dummy write operation to at least one memorycomponent using each of the delayed data signals and the correspondingdelayed data-valid signals and means for comparing timing information ofeach dummy write operation.
 55. The circuit of claim 51, furthercomprising means for writing information to at least one memorycomponent via the first signal path using the selected delayed datasignal and the selected delayed data-valid signal.
 56. A methodcomprising: receiving a data signal and a corresponding data-validsignal; generating a plurality of delayed data-valid signals that aredelayed versions of the data-valid signal; generating a plurality ofdelayed data signals from the received data signal, wherein each delayeddata signal is a delayed version of the data signal generated using oneof the plurality of delayed data-valid signals; determining differencesin propagation delay times of signals across a first signal path and atleast one other signal path; and selecting one of the delayed datasignals and one of the delayed data-valid signals using the determineddifferences in propagation delay times.
 57. The method of claim 56,further comprising writing information to at least one memory componentvia the first signal path using the selected delayed data signal and theselected delayed data-valid signal.
 58. The method of claim 56, whereinthe data signal is a write data signal and the data-valid signal is awrite data-valid signal, further comprising transferring anaddress/control signal to the memory component via the other signalpath, the address/control signal corresponding to the write data signal.59. The method of claim 58, wherein selecting includes selecting one ofa delayed write data signal and one of a delayed write data-valid signalin order to minimize a difference in propagation delay times between thedelayed write data signal of the first signal path and theaddress/control signal of the other signal path.
 60. The method of claim56, wherein the data signal is an address/control data signal and thedata-valid signal is an address/control data-valid signal, furthercomprising transferring a write data signal to the memory component viathe other signal path, the write data signal corresponding to theaddress/control data signal.
 61. The method of claim 60, whereinselecting includes selecting one of a delayed address/control datasignal and one of a delayed address/control data-valid signal in orderto minimize a difference in propagation delay times between the delayedaddress/control data signal of the first signal path and the write datasignal of the other signal path.
 62. Computer-readable media havinginformation embodied therein that represents an apparatus, therepresented apparatus comprising: delay circuitry that receives adata-valid signal and generates a plurality of delayed data-validsignals that are delayed versions of the data-valid signal; drivercircuitry that includes a plurality of register storage elements coupledin series and clocked by at least one of the delayed data-valid signals,the driver circuitry receiving a data signal and generating a pluralityof delayed data signals that are delayed versions of the received datasignal; and output circuitry that selects one of the delayed data-validsignals and one of the delayed data signals for output to at least onememory component in response to relative timing information of the datasignal and a corresponding address signal.
 63. The media of claim 62,wherein the represented apparatus further comprises at least oneregister, wherein contents of the register determine information of thecontrol signal, wherein the register includes at least one of auser-programmable register and an automatically programmable register.64. The media of claim 63, wherein the represented apparatus furthercomprises calibration circuitry that determines the contents of theregister by comparing relative propagation delay information of each ofthe delayed data signals and the corresponding delayed data-validsignals.